package com.cian.service;

import com.cian.entity.Stock;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cian.entity.dto.ClientCommodityDTO;
import com.cian.entity.dto.StockDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

/**
 * <p>
 * 子终端对应的商品库存在mysql的持久表 服务类
 * </p>
 *
 * @author Cian
 * @since 2021-03-09
 */
public interface IStockService extends IService<Stock> {
    @ApiModelProperty(value = "根据子系统的识别码，找到该子系统当前所有的商品列表")
    public List<Integer> getSubsystemStockForCommodity(String serverCode);
    @ApiModelProperty(value = "根据子系统的识别码 与 待添加的商品列表 进行处理")
    public void selectStockByList(String serverCode, Integer[] add);
    @ApiModelProperty(value = "根据子系统的识别码 与 待删除的商品列表 进行处理")
    public void deleteStockByList(String serverCode, Integer[] delete);
    @ApiModelProperty(value = "根据子系统的识别码 获取库存的商品信息")
    public List<StockDTO> getStockByCode(String serverCode,int nextPage, int pageMaxNum);
    @ApiModelProperty(value = "根据子系统的识别码，商品id，获取单个商品详细信息")
    public StockDTO getStockInform( String serverCode,int coId);
    @ApiModelProperty(value = "根据子系统的识别码，修改商品的库存，模拟购买操作")
    public boolean buyingSetting(String serverCode,int coId, int amount);
    @ApiModelProperty(value = "根据子系统的识别码 获取库存的商品信息")
    public List<StockDTO> getStockByCodeForAll(String serverCode, int pageMaxNum);
    @ApiModelProperty(value = "根据子系统的识别码 获得即发送给子系统的商品信息")
    public List<ClientCommodityDTO> getClientCommodityList(String serverCode);
    @ApiModelProperty(value = "根据商品的id，将所有的该商品全部删除")
    public void deleteStockByCommodityCode(int coId);
    @ApiModelProperty(value = "根据商品的识别码，id, 价格量 ，库存变化量，修改对应的商品")
    public boolean updateStockByCode(String serverCode,int coId, double price, int stock);
}
